#include "Headers/Head.h"


ClientUDP::~ClientUDP()
{
    //dtor
}

bool ClientUDP::polacz()
{

    Receiver.Bind(port2);
    Receiver.SetBlocking(false);
    //time_t start, koniec;
    ip = IPAddress::GetLocalAddress();
    cin>>ip;
    zapisane = ip;
    ACK = 1;
    SocketTCP Sender;

    sf::SocketTCP Client;
    if (Client.Connect(port, ip) != sf::Socket::Done)
    {
        // Error...
    }
    else
    {
        cout<<"CONNECTED"<<endl;
    }


    //wys<<ACK;
//    start = clock();
//    try
//    {
//        wyslij();
//        do
//        {
////            wys<<ACK;
////            wyslij();
//            koniec = clock();
//            if((koniec - start)>4000)
//                throw 1;
//        }
//        while(!pobierz());
//        //wys<<ACK;
//        //wyslij();
//        odb>>ACK;
//        if(ACK)
//            cout<<"CONNECTED"<<endl;
//
//    }
//    catch(int)
//    {
//        cout<<"ERROR - ZA DLUGI CZAS OCZEKIWANIA"<<endl;
//
//    }

    return 1;



}

bool ClientUDP::wyslij()
{
    bool udane = false;
    if(Sender.Send(wys,zapisane,port))
        cout<<"Error: "<<Helper.GetErrorStatus()<<endl;
    else
    {
        cout<<"CLIENT WYSLAL na ip: "<<zapisane<<endl;
        udane = true;
    }
    wys.Clear();
    return udane;
}


bool ClientUDP::pobierz()
{
    bool udane = false;
    odb.Clear();
    if (Receiver.Receive(odb,ip,port2))
        cout<<"Error Receive: "<<Helper.GetErrorStatus()<<endl;
    else
    {
        cout<<"CLIENT ODEBRAL od ip: "<<ip<<endl;
        udane = true;
    }
    return udane;

}


